Hibernate vs Spring Data vs jOOQ: Understanding Java Persistence | Thorben Janssen
Description
Thorben Janssen joins Marco to talk about the hidden power (and pain) of Java persistence frameworks. Hibernate, JPA, Spring Data, jOOQ: which one should you really use in 2025? From learning SQL the right way to surviving microservices madness, this episode is packed with hard-won lessons from decades of real-world Java work.
π‘ Topics in this episode:
- Hibernate vs JPA vs Jakarta Data
- When to use jOOQ or Exposed
- The biggest persistence misconceptions
- Common performance traps (and how to avoid them)
- Monoliths, microservices, and βrealβ architecture decisions
- How AI might change the way we write queries
β±οΈ Timestamps:
(00:00 ) Introduction: From painful early learning to AI-generated annotations
(01:02 ) Meet Thorben Janssen β consultant and trainer for Java persistence
(02:11 ) Early days of Hibernate and the horror of EJB2
(04:33 ) Main challenges in database access today
(06:18 ) Too many tools: Hibernate, JPA, Spring Data, jOOQ β how to choose
(08:15 ) Why understanding ORM internals really matters
(09:20 ) How juniors should start learning persistence
(10:59 ) SQL skills β why you still need them even with Hibernate or Spring Data
(13:48 ) SQL essentials for beginners: what to learn first
(16:01 ) Why Hibernate became the dominant persistence tool
(18:57 ) Hibernate vs JPA β is there really a difference?
(20:35 ) Hibernate API vs Jakarta Persistence API β which to use
(22:10 ) Criteria API and DSLs for queries
(23:43 ) Strengths and weaknesses of Spring Data JPA
(27:26 ) Jakarta Data vs Spring Data JPA
(30:53 ) Stateful vs stateless data models
(33:21 ) jOOQ, Exposed, and the SQL-centric approach
(37:41 ) Mixing Hibernate and Exposed in one project
(39:33 ) Where Spring Data JDBC fits in
(43:24 ) Starting a new project in 2025 β what stack to choose
(45:24 ) The role of experience and not chasing every new trend
(48:50 ) Monoliths, microservices, and common pitfalls
(52:14 ) Database design vs service design β where to start
(59:02 ) Common database performance issues
(01:03:10 ) Why developers should collaborate with DBAs
(01:06:20 ) Caching problems: when caches make things worse
(01:09:29 ) Reactive database access β what happened to the hype
(01:12:33 ) The "perfect" persistence framework β does it exist?
(01:14:40 ) AI-assisted development and query generation
(01:19:43 ) The AI hype cycle and developer reality
(01:20:17 ) Other persistence models worth learning (graph, full-text search)
(01:21:43 ) Full-text search and graph databases in practice
(01:23:25 ) Integrating AI into applications
(01:24:38 ) Thorben's unpopular opinions
(01:26:04 ) Giveaway announcement
(01:27:06 ) Rapid-fire round: Paderborn, joins, and lazy loading
(01:30:00 ) Closing remarks
π Giveaway: Whatβs the highest number of SQL queries youβve ever seen one workflow generate? Best answers win JetBrains merch or IDE licenses.
New episodes every other Wednesday. Subscribe for deep, developer-focused conversations.πΊ Watch on YouTube: https://youtu.be/t4h6l-HlMJ8










